1. Field of the Invention
The present invention relates to a data distribution system that makes data upload and download possible for a plurality of client devices connected to a server device via a network, and to a control method thereof.
2. Description of the Related Art
Due to progress in electronic computers, various software for making processing via a network possible has come to be installed on business equipment such as copy machines and the like, and on imaging devices for family use such as digital cameras, and the like. So, it is possible for these devices to connect to Internet services set up on the Internet as client devices. These client devices have functions for performing transmission and reception of data via the Internet with a server device. Also, the server device has functions for storing data transmitted from the client device, and also for transmitting data to a client device in accordance with a request.
In a case where an Internet service is provided to such a client device, it is necessary to use Internet technologies as typified by URL and HTTP as a base. URL is an abbreviation for Uniform Resource Locator, and is a describing method for indicating a location of data that exists on the Internet. A URL comprises an information access scheme, a server address, a port number, a path, and the like. HTTP is an abbreviation for Hypertext Transfer Protocol, and is a protocol used when a server device and a client device transmit and receive data specified by a URL. Various data exchange can be performed between a server device and a client device with HTTP.
Distributed processing techniques for causing a processing load to be distributed by using these Internet technologies and preparing a plurality of server devices in order to process access requests from numerous client devices on the server device side are known.
Thus, it can be thought that devices sold to general consumers in large numbers such as compact digital cameras, and the like, will increasingly be connected to Internet services as client devices. Accordingly, a higher level of load distribution capability will be required on the server device side.
Specifically, the case in which an image streaming social network service (hereinafter referred to as image SNS service) is provided for sharing photograph images in real time using a network supporting digital camera can be given as an example. In such a service, it is necessary to perform transmission and reception processing of images between a plurality of client devices and a server device in almost real time in order to share between users a plurality of images captured by a plurality of users as a sequential flow (stream). However, in a case where the number of client devices that successively transmit images increases, it is insufficient to only increase processing capability with distributed processing techniques on the server device side in order to maintain a constant image distribution time from the server device to another client device. This is because there is a limit to how many access requests from client devices, which can increase without bounds compared to the number of units, can be accommodated by only increasing efficiency on a relatively limited number of server devices.
Accordingly, a delay in image distribution time to another client device (user) participating in the service is forced to be accepted in this kind of image SNS service at a stage where processing capability expansion of the server device has reached a limit. In other words, in a service, such as an image SNS service, which must expect a large number of client devices connecting, it is problematic to attempt to maintain a responsiveness capability for the system on the whole by methods of performing efficiency improvement on the server device side alone. For this reason, there is a necessity to realize efficiency improvement on the client device side using some kind of method.
The following technique is presented in order to address the challenge of having not only a server device but also a client device handle a particular role in order for the system on the whole to efficiently process an increasing number of processing requests.
Firstly, in Japanese Patent Laid-Open No. 2011-114699, a technique in which terminal related settings are automatically changed in order that a terminal (client device) receive information distribution from other terminals (client devices) within the same hub in place of a server device in a case where the terminal entered an idle state is recited.
Also, in Japanese Patent Laid-Open No. 2003-008977, a technique in which camera (client device) settings are changed by transmitting capture advice information from a server device to a camera (client device) that can transmit a captured image to the server device is recited.
However, in the technique recited in Japanese Patent Laid-Open No. 2011-114699, a case in which a terminal (client device) that entered a sleep (rest) state is disconnected from the network is expected, and so an increase in active state terminals cannot be handled. Generally, in an image SNS service, because digital cameras maintaining an active state in order to capture a photograph are client devices, this technique cannot solve the problem in the aforementioned image SNS service.
Also, the technique recited in Japanese Patent Laid-Open No. 2003-008977 has an object of generating advice information on the server device based on an image that a camera uploaded, and changing target camera settings based on that information. In other words, the settings of the client device camera are changed based on information that the camera itself captured, and are not updated based on a load of the server device, or the like. Accordingly, in the technique recited in Japanese Patent Laid-Open No. 2003-008977, changing of client device settings in accordance with a load status on a server device side cannot be carried out.